package com.wwy.arithmetic.suanfa;

/**
 * 罗马字符转数字
 */
public class LuoMa {
    /**
     * 罗马数字包含以下七种字符: I， V， X， L，C，D 和 M。
     * <p>
     * 字符          数值
     * I             1
     * V             5
     * X             10
     * L             50
     * C             100
     * D             500
     * M             1000
     */

    public static void main(String[] args) {
        int iv = luoma("LVIII");
        System.out.println("iv = " + iv);
    }

    static int luoma(String s) {
        int num = 0;
        if (s == null || "".equals(s)) {
            return num;
        }
        char[] chars = s.toCharArray();
        for (int i = 0; i < chars.length; i++) {
            if (i + 1 < chars.length && getNum(chars[i]) < getNum(chars[i + 1])) {
                num = num +getNum(chars[i+1])-getNum(chars[i]);
                i++;
            }else{
                num = num +getNum(chars[i]);
            }
        }
        return num;
    }


    static int getNum(Character a) {
        switch (a) {
            case 'I':
                return 1;
            case 'V':
                return 5;
            case 'X':
                return 10;
            case 'L':
                return 50;
            case 'C':
                return 100;
            case 'D':
                return 500;
            case 'M':
                return 1000;
            default:
                return 0;
        }
    }
}

